잠시만 기다려 주세요

     '대통령을 욕하는 것은 민주사회에서 주권을 가진 시민의 당연한 권리입니다. 대통령을 욕하는 것으로 주권자가 스트레스를 해소할 수 있다면 저는 기쁜 마음으로 들을 수 있습니다. - 노무현 -'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (19)  |  여러가지 팁 (1095)  |  추천 및 재미 (163)  |  자료실 (28)  |  
시사, 이슈, 칼럼, 평론, 비평 (799)  |  끄적거림 (142)  |  문예 창작 (719)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    postgresql

postgresql - postgresql sequence 시퀀스 auto_increment 사용하기. 추가하기
이 름 : 바다아이   |   조회수 : 11349         짧은 주소 : https://www.bada-ie.com/su/?111591780721
mysql, mariadb 같은 경우 테이블 만들 때... 해당 필드 옵션에 auto_increment 를 설정해 놓으면
자동으로 알아서 증가되게 됩니다.
그러나 postgresql 같은 경우 수작업으로 추가해 주시고 해당 필드에 연결해 주셔야 합니다.
인덱스, 프라이머리키, 외래키 등등... postgresql 은 수동입니다. -.-;
pg_admin 관리툴에서 보면 테이블 스키마 부분 쪽에 테이블, 시퀀스, 인덱스  등등 따로 되어 있습니다.

추가할 시퀀스 이름을 aaa_uid_seq 라고 해 보고
uid 란 필드에 연결한다고 가정한다면....

CREATE SEQUENCE public.aaa_uid_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE public.aaa_uid_seq
  OWNER TO 디비유저;

위와 같이 시퀀스를 추가해 줍니다. 이제 사용할 준비는 끝났습니다.
사용을 해 보면 uid 란 필드가 증가해야 되기 때문에

nextval('aaa_uid_seq'::regclass)

위 값을 필드의 default 값에 넣어놓습니다. 그럼 빈값이 오면 위에 것이 실행되면서
시퀀스를 이용해 자동 증가를 시켜 값을 넣어놓게 됩니다.
주의 하실 점은 mysql, mariadb 는

(uid, 필드명) values ('', 필드값)

요런식의 쿼리가 에러없이 실행되지만 postgresql 에서는 uid 값을 생략하셔야 합니다.

(필드명) values (필드값)

마지막으로 이제 uid 란 필드를 시퀀스에 연결해 놓아야 합니다.

ALTER SEQUENCE aaa_uid_seq OWNED BY 테이블이름.필드명;

위에 것을 안 해 놓으면

TRUNCATE 테이블이름 RESTART IDENTITY;

위와 같이 테이블을 비울 때 다시 시퀀스를 1부터 시작해야 하는데
연결을 안 해 놓으면 1부터가 안됩니다. 리셋이 안되는 거죠...

대략 흐름은 이러네요..
postgresql 이 약간 수작업이 많습니다. 뭐 이유가 있어서 그렇게 만들었겠죠...
admin 툴에서 테이블 생성이나 시퀀스 등등 생성시에는 소유 개념 부분을 주의를 많이 해 주셔야 합니다.
테이블이 누구꺼인가.. 시퀀스가 어디 필드가 주인이냐. 등등...
mysql, mariadb 는 그냥 해당 디비에서 작업하면 전부 그 디비가 주인인 것으로 보지만
postgresql 은 소유 부분을 잘 보셔야 합니다.
 
| |





      1 page / 2 page
번 호 카테고리 제 목 이름 조회수
45 postgresql postgresql ... postgresql 14 .. postgresql.conf port 5432 .. 바다아이 1850
44 postgresql , count(*) .... 바다아이 8519
43 postgresql How to do an update + join in PostgreSQL?, 바다아이 7794
42 postgresql sequence(퀀) 바다아이 10259
41 postgresql , , , index create, , 바다아이 10248
40 postgresql postgresql log_timezone .... 바다아이 8294
39 postgresql postgresql SEQUENCE reset .... 바다아이 10224
38 postgresql [PostgreSql] WITH , , Operator 바다아이 9437
37 postgresql postgresql for, foreach , 바다아이 11224
36 postgresql postgresql , , into ... 바다아이 11355
35 postgresql postgresql PL/pgSQL - SQL Procedural Language, , 바다아이 12929
34 postgresql postgresql ... .. , , 바다아이 14468
33 postgresql postgresql CSV export/import 바다아이 10598
32 postgresql postgresql tablespace , .... 바다아이 15815
31 postgresql postgresql 10 partitioning, ... , ... 바다아이 11142
30 postgresql Using PostgreSQL Arrays, ... ... 바다아이 11176
29 postgresql PostgreSQL (TRIGGER) (function) 바다아이 10737
28 postgresql Optimize and Improve PostgreSQL Performance with VACUUM, ANALYZE, and REINDEX 바다아이 11361
27 postgresql postgresql tuple . vacuumdb .. , . 바다아이 10949
26 postgresql postgresql , .. 바다아이 11153
25 postgresql postgresql , size, 바다아이 13073
24 postgresql postgresql , , .... 바다아이 9918
23 postgresql PostgreSQL Replication, , , master, slave 바다아이 13504
22 postgresql postgresql case 바다아이 9975
21 postgresql postgresql with 바다아이 10419
20 postgresql postgresql , , string 바다아이 14364
19 postgresql Postgresql partitioning table , , , 바다아이 10790
18 postgresql PostgreSQL 바다아이 12426
17 postgresql postgresql vacuumdb, psql, pg_dump password crontab , pgpass 바다아이 12402
현재글 postgresql postgresql sequence 퀀 auto_increment . 바다아이 11350
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.06095
to webmaster... gogo sea. gogo sea.